/*
*  Demo Container - It cans stored data when it's type is std::string.
*  Copyright (C) 2014  Dawei
*	 All rights reserved.
*
*  The project is been used for exercise in the MulticoreWare Inc.
*
*  DemoContainer.h: Define the class for Container
*
*/

#ifndef _DEMOCONTAINER_H_
#define _DEMOCONTAINER_H_

#include <string>
#include <vector>

class DemoContainer
{

public:

  explicit DemoContainer();
  ~DemoContainer();

public:

  /*
  *	@Description: Get the number of Container.
  *  @Return: The number of Container.
  */
  int get_size(void);

  /*
  *	@Description: Add the item for Container.
  *  @Input-param:[str] The value of item.
  *  @Return: The index of item.
  */
  int add_item(const std::string& str);

  /*
  *	@Description: Get the item by index from Container.
  *  @Input-param:[index] The index of item.
  *  @Return: The value of item.
  */
  std::string get_item(int index);

  /*
  *	@Description: Remove the item by index from Container.
  *  @Input-param:[index] The index of item.
  #  @Return: Success(true) Or Fail(false)
  */
  bool remove_item(int index);

private:

  //!< the vector for storing data
  std::vector<std::string> Container_;

};

#endif //!< _DEMOCONTAINER_H_